package si.banst.tecajnice.web.mbean;

import java.util.List;
import java.util.logging.Logger;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;

import si.banst.tecajnice.ejb.PonderjiBeanRemote;
import si.banst.tecajnice.ejb.TecajniceBeanRemote;
import si.banst.tecajnice.entitete.Ponder;
import si.banst.tecajnice.entitete.StatusAktivnosti;
import si.banst.tecajnice.entitete.VrstaTecajnice;
import si.banst.tecajnice.web.PonderDataModel;

@Named
public class PonderjiMBean {
	private static final Logger logger = Logger.getLogger(PonderjiMBean.class
			.getName());

	@EJB(lookup="corbaname:iiop:tecajnice.banst.si:2811#PonderjiBean")
	private PonderjiBeanRemote ponderjiBean;

	@EJB(lookup="corbaname:iiop:tecajnice.banst.si:2811#PonderjiBean")
	private TecajniceBeanRemote tecajniceBean;
	
	private Ponder izbranPonder;

	public PonderjiMBean() {
		super();
	}

	public PonderDataModel getSeznamPonderjev() {
		try {
			return new PonderDataModel(ponderjiBean.vrniVsePonderje());
		} catch (Exception e) {
			logger.severe("Napaka pri zahtevi. " + e);
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Napaka pri zahtevi.", e.getMessage()));
			return null;
		}
	}

	public List<VrstaTecajnice> getSeznamVrstTecajnic() {
		try {
			return tecajniceBean.vrniVseVrsteTecajnic();
		} catch (Exception e) {
			logger.severe("Napaka pri zahtevi. " + e);
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Napaka pri zahtevi.", e.getMessage()));
			return null;
		}
	}
	
	
	public void uredi() {
		try {
			if(izbranPonder == null)
				throw new Exception("Ponder ni izbran. ");
			izbranPonder.setStatusAktivnosti(StatusAktivnosti.NEAKTIVEN);
			izbranPonder.setReferent(FacesContext.getCurrentInstance().getExternalContext().getRemoteUser());
			ponderjiBean.posodobiPonder(izbranPonder);
		} catch (Exception e) {
			logger.severe("Napaka pri posodobitvi. " + e);
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Napaka pri posodobitvi.", e.getMessage()));
		}
		FacesContext.getCurrentInstance().addMessage(
				null,
				new FacesMessage(FacesMessage.SEVERITY_INFO,
						"Ponder uspešno posodobljen. ",""));
	}

	public void setIzbranPonder(Ponder izbranPonder) {
		this.izbranPonder = izbranPonder;
	}

	public Ponder getIzbranPonder() {
		return izbranPonder;
	}
}
